﻿#pragma once

#include "common_data.h"
#include "json_trans.h"

struct BDInfo {
	int index;
	QString rgb;
	QString depth;
	int pix_x;
	int pix_y;
	bool valid;
	Position rob;
};

structJ(IntrinsicInfo,
	mapping(float, fx);
mapping(float, fy);
mapping(float, cx);
mapping(float, cy);
prop(&fx, &fy, &cx, &cy);
)

structJ(ExternalInfo,
	mappingt(float, r00, "R_00");
mappingt(float, r01, "R_01");
mappingt(float, r02, "R_02");
mappingt(float, t00, "T_00");
mappingt(float, r10, "R_10");
mappingt(float, r11, "R_11");
mappingt(float, r12, "R_12");
mappingt(float, t01, "T_01");
mappingt(float, r20, "R_20");
mappingt(float, r21, "R_21");
mappingt(float, r22, "R_22");
mappingt(float, t02, "T_02");
prop(&r00, &r01, &r02, &t00, &r10, &r11, &r12, &t01, &r20, &r21, &r22, &t02);
)
structJ(PlateRangInfo,
	mapping(float, x_min);
mapping(float, x_max);
mapping(float, y_min);
mapping(float, y_max);
mapping(float, z_min);
mapping(float, z_max);
prop(&x_min, &x_max, &y_min, &y_max, &z_min, &z_max);
)

structJ(CalibrationInfo,
	mapping(IntrinsicInfo, Intrinsic);
mapping(ExternalInfo, External);
mapping(PlateRangInfo, UnstackSpace);
prop(&Intrinsic, &External, &UnstackSpace);
)
